1894C - Anonymous Informant - CodeForces Solution


constructive algorithms graphs implementation

Please click on ads to support us..

C++ Code:

#include <iostream>
#include <unordered_set>
using namespace std;

int n, k;
int b[200010];
bool vis[200010];

void solve() {
    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        cin >> b[i];
    }
    for (int i = 1; i <= n; i++) {
        vis[i] = false;
    }

    unordered_set<int> s;
    int cur = n;
    bool ok = true;
    for (int i = 1; i <= k; i++) {
        if (b[cur] <= n) {
            if (vis[cur]) {
                break;
            } else {
                vis[cur] = true;
            }
            cur = ((cur - b[cur]) % n + n) % n;
            if (cur == 0) { cur = n; }
        } else {
            ok = false;
            break;
        }
    }

    cout << (ok ? "Yes\n" : "No\n");
}

int main() {
#ifdef ONLINE_JUDGE
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
#endif

    int t;
    cin >> t;
    for (int i = 1; i <= t; i++) {
        solve();
    }
}


Comments

Submit
0 Comments
More Questions

706B - Interesting drink
1265A - Beautiful String
214A - System of Equations
287A - IQ Test
1108A - Two distinct points
1064A - Make a triangle
1245C - Constanze's Machine
1005A - Tanya and Stairways
1663F - In Every Generation
1108B - Divisors of Two Integers
1175A - From Hero to Zero
1141A - Game 23
1401B - Ternary Sequence
598A - Tricky Sum
519A - A and B and Chess
725B - Food on the Plane
154B - Colliders
127B - Canvas Frames
107B - Basketball Team
245A - System Administrator
698A - Vacations
1216B - Shooting
368B - Sereja and Suffixes
1665C - Tree Infection
1665D - GCD Guess
29A - Spit Problem
1097B - Petr and a Combination Lock
92A - Chips
1665B - Array Cloning Technique
1665A - GCD vs LCM